/*
 * 报销单
 */
package com.yunhoo.pay.model;
//import com.yunhoo.tools.PayCodeConstants;
import com.yunhoo.base.model.AbroadGroupGroup;
import com.yunhoo.base.model.AbroadGroupCurrency;
import com.yunhoo.base.model.ClassCode;
import com.yunhoo.base.model.CostItem;
import com.yunhoo.base.model.Department;
import com.yunhoo.base.model.FinancialProject;
import com.yunhoo.base.model.PayStyle;
import com.yunhoo.base.model.Person;
import com.yunhoo.sys.util.common.LoginParam;
import java.util.Date;

/**
 *
 * @author Administrator 报销单据主要信息
 */
public class Expense {

    private Person user = new Person();
    private Department dept = new Department();
    //private Project project = new Project();
    private FinancialProject project = new FinancialProject();
    private String customProjCode = "";//自定义项目编码
    private CostItem costitem = new CostItem();
    private TravelCost cost = new TravelCost();//差旅费明细
    private AffairFee fee = new AffairFee();//差旅杂费
    private ClassCode costTypes = new ClassCode();
    private ClassCode feeItem = new ClassCode();
    private String number = "";//报销编号
    private String voutype = ""; //单据类型
    private Date numDate = new Date();//报销日期
    private String chuChaiRen = "";//出差人
    private String person = "";//制单人
    private String deptcode = ""; //部门代码    
    private String costClass = "";//支出类别（基本支出 或  项目支出）
    private String costType = "";//支出类型(支出渠道)
    private String projCode = "";//项目代码（项目编码）    
    private String budgetSource = "";//预算来源  当年预算或上年结转
    private String affair = "";//事由
    private Date beginDate = new Date();//开始日期
    private Date endDate = new Date();//结束日期
    private Date payDate = new Date();//支付日期
    private String payer = "";//支付人
    private String payerId = "";//支付人编号
    private Double payaccount = 0d;//支付金额
    private Double checkaccount = 0d;//核定金额
    private String ticketcode = ""; //支票号
    private String mark = ""; //生成标志
    private Double total = null;//金额
    private Double repayment = 0d;//还款金额
    private Double taxAmount;//税金
    private Double remain = 0d;//剩余金额
    private String auditor = "";//审核人
    private String auditorid = "";//审核人编号
    private Date auditDate = new Date();//审核日期
    private String paycode = "";//支付令
    private String eocCode = "";//一级经济科目代码
    private String numberStatus = "1";//单据状态
    private String effecitve = "";//有效状态
    private String memo = "";//备注
    private String affixAmount = ""; //附件张数
    private boolean showAble = false;
    private boolean selected = false;
    private AbroadGroupGroup group = new AbroadGroupGroup();  //出国团组
    private PayStyle payStyle = new PayStyle();//支付方式
    private String isQuota = ""; //借款单借款金额是否限额
    private Department payDept = new Department(); //费用承担部门
    private Person feePer = new Person();
    private String feePerson = "";//报销人
    private Receive rec = new Receive();        //收款人信息
    private StyleDetail styleDetail = new StyleDetail();    //差旅费报销单 具体支付方式 对应金额
    private String cashPaid = "";  //现金付讫
    private String receive = ""; //收款人
    private AbroadGroupCurrency currency = new AbroadGroupCurrency();
    private String orgCode = "";
    private String flowMark = ""; //审批标志
    private String billStatus = "";//单据状态
    private String checkInfo = "";//单据审核信息

    public Department getPayDept() {
        return payDept;
    }

    public void setPayDept(Department payDept) {
        this.payDept = payDept;
    }

    public Receive getRec() {
        return rec;
    }

    public void setRec(Receive rec) {
        this.rec = rec;
    }

    public StyleDetail getStyleDetail() {
        return styleDetail;
    }

    public void setStyleDetail(StyleDetail styleDetail) {
        this.styleDetail = styleDetail;
    }

    public String getIsQuota() {
        return isQuota;
    }

    public void setIsQuota(String isQuota) {
        this.isQuota = isQuota;
    }

    public String getAffixAmount() {
        return affixAmount;
    }

    public void setAffixAmount(String affixAmount) {
        this.affixAmount = affixAmount;
    }

    public PayStyle getPayStyle() {
        return payStyle;
    }

    public void setPayStyle(PayStyle payStyle) {
        this.payStyle = payStyle;
    }

    public AbroadGroupGroup getGroup() {
        return group;
    }

    public void setGroup(AbroadGroupGroup group) {
        this.group = group;
    }

    public Double getRemain() {
        return remain;
    }

    public void setRemain(Double remain) {
        this.remain = remain;
    }

    public Double getRepayment() {
        return repayment;
    }

    public void setRepayment(Double repayment) {
        this.repayment = repayment;
    }

    public Double getCheckaccount() {
        return checkaccount;
    }

    public void setCheckaccount(Double checkaccount) {
        this.checkaccount = checkaccount;
    }

    public String getPayerId() {
        return payerId;
    }

    public void setPayerId(String PayerId) {
        this.payerId = PayerId;
    }

    public ClassCode getCostTypes() {
        return costTypes;
    }

    public void setCostTypes(ClassCode costTypes) {
        this.costTypes = costTypes;
    }

    public String getAuditorid() {
        return auditorid;
    }

    public void setAuditorid(String auditorid) {
        this.auditorid = auditorid;
    }

    public String getTicketcode() {
        return ticketcode;
    }

    public void setTicketcode(String ticketcode) {
        this.ticketcode = ticketcode;
    }

    public TravelCost getCost() {
        return cost;
    }

    public void setCost(TravelCost cost) {
        this.cost = cost;
    }

    public AffairFee getFee() {
        return fee;
    }

    public void setFee(AffairFee fee) {
        this.fee = fee;
    }

    public String getVoutype() {
        return voutype.trim();
    }

    public void setVoutype(String voutype) {
        this.voutype = voutype;
    }

    public Double getPayaccount() {
        return payaccount;
    }

    public void setPayaccount(Double payaccount) {
        this.payaccount = payaccount;
    }

    public String getAffair() {
        return affair;
    }

    public void setAffair(String affair) {
        this.affair = affair;
    }

    public Date getAuditDate() {
        return auditDate;
    }

    public void setAuditDate(Date auditDate) {
        this.auditDate = auditDate;
    }

    public String getAuditor() {
        return auditor;
    }

    public void setAuditor(String auditor) {
        this.auditor = auditor;
    }

    public String getBudgetSource() {
        return budgetSource;
    }

    public void setBudgetSource(String budgetSource) {
        this.budgetSource = budgetSource;
    }

    public String getCostClass() {
        return costClass;
    }

    public void setCostClass(String costClass) {
        this.costClass = costClass;
    }

    public String getCostType() {
        return costType;
    }

    public void setCostType(String costType) {
        this.costType = costType;
    }

    public String getEffecitve() {
        return effecitve;
    }

    public void setEffecitve(String effecitve) {
        this.effecitve = effecitve;
    }

    public String getNumber() {
        return number == null ? number : number.trim();
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getNumberStatus() {
        if (numberStatus == null) return null;
        return numberStatus.trim();
    }

    public void setNumberStatus(String numberStatus) {
        this.numberStatus = numberStatus;
    }

    public Date getPayDate() {
        return payDate;
    }

    public void setPayDate(Date payDate) {
        this.payDate = payDate;
    }

//    public String getPayStyle() {
//        return payStyle;
//    }
//
//    public void setPayStyle(String payStyle) {
//        this.payStyle = payStyle;
//    }
    public String getPayer() {
        return payer;
    }

    public void setPayer(String payer) {
        this.payer = payer;
    }

    public String getPerson() {
        return person;
    }

    public void setPerson(String person) {
        this.person = person;
    }

    public String getProjCode() {
        return projCode;
    }

    public void setProjCode(String projCode) {
        this.projCode = projCode;
    }

    public String getDeptcode() {
        return deptcode;
    }

    public void setDeptcode(String deptcode) {
        this.deptcode = deptcode;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public Date getNumDate() {
        return numDate;
    }

    public void setNumDate(Date numDate) {
        this.numDate = numDate;
    }

    public Date getBeginDate() {
        return beginDate;
    }

    public void setBeginDate(Date beginDate) {
        this.beginDate = beginDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Double getTotal() {
        return total;
    }

    public void setTotal(Double total) {
        this.total = total;
    }

    public String getPaycode() {
        return paycode;
    }

    public void setPaycode(String paycode) {
        this.paycode = paycode;
    }

    public String getEocCode() {
        return eocCode;
    }

    public void setEocCode(String eocCode) {
        this.eocCode = eocCode;
    }

    public Department getDept() {
        return dept;
    }

    public void setDept(Department dept) {
        this.dept = dept;
    }

    public FinancialProject getProject() {
        return project;
    }

    public void setProject(FinancialProject project) {
        this.project = project;
    }

    public Person getUser() {
        return user;
    }

    public void setUser(Person user) {
        this.user = user;
    }

    public CostItem getCostitem() {
        return costitem;
    }

    public void setCostitem(CostItem costitem) {
        this.costitem = costitem;
    }

    public boolean isSelected() {
        return selected;
    }

    public void setSelected(boolean selected) {
        this.selected = selected;
    }

    public boolean isShowAble() {
        return showAble;
    }

    public void setShowAble(boolean showAble) {
        this.showAble = showAble;
    }

    public Double getTaxAmount() {
        return taxAmount;
    }

    public void setTaxAmount(Double taxAmount) {
        this.taxAmount = taxAmount;
    }

    public ClassCode getFeeItem() {
        return feeItem;
    }

    public void setFeeItem(ClassCode feeItem) {
        this.feeItem = feeItem;
    }

    public String getCashPaid() {
        return cashPaid;
    }

    public void setCashPaid(String cashPaid) {
        this.cashPaid = cashPaid;
    }

    public AbroadGroupCurrency getCurrency() {
        return currency;
    }

    public void setCurrency(AbroadGroupCurrency currency) {
        this.currency = currency;
    }

    public String getMark() {
        return mark;
    }

    public void setMark(String mark) {
        this.mark = mark;
    }

    public String getReceive() {
        return receive;
    }

    public void setReceive(String receive) {
        this.receive = receive;
    }

    public String getOrgCode() {
        orgCode = LoginParam.getOrg().getCode();
        return orgCode;
    }

    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }

    public String getFlowMark() {
        return flowMark;
    }

    public void setFlowMark(String flowMark) {
        this.flowMark = flowMark;
    }

    public String getFeePerson() {
        return feePerson;
    }

    public void setFeePerson(String feePerson) {
        this.feePerson = feePerson;
    }

    public Person getFeePer() {
        return feePer;
    }

    public void setFeePer(Person feePer) {
        this.feePer = feePer;
    }

    public String getBillStatus() {
        return billStatus;
    }

    public void setBillStatus(String billStatus) {
        this.billStatus = billStatus;
    }

    public String getCheckInfo() {
        return checkInfo;
    }

    public void setCheckInfo(String checkInfo) {
        this.checkInfo = checkInfo;
    }

    public String getChuChaiRen() {
        return chuChaiRen;
    }

    public void setChuChaiRen(String chuChaiRen) {
        this.chuChaiRen = chuChaiRen;
    }

    public String getCustomProjCode() {
        return customProjCode;
    }

    public void setCustomProjCode(String customProjCode) {
        this.customProjCode = customProjCode;
    }
}
